/**
 *  Copyright (C) 2010  Thomas Volk
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */
package com.googlecode.bookmarks.core.dispatcher;

import java.net.URL;

import com.googlecode.bookmarks.core.beans.FtpResource;
import com.googlecode.bookmarks.core.beans.SecureWebpage;
import com.googlecode.bookmarks.core.beans.Webpage;


public class UrlDispatcher implements ResourceDispatcher {
	private final URL url;

	public UrlDispatcher(URL url) {
		this.url = url;
	}
		@Override
	public Object dispatch(Handler handler) {
		String protocol = url.getProtocol();
		if("http".equals(protocol)) {
			return handler.handleWebpage(new Webpage(url));
		}
		else if("https".equals(protocol)) {
			return handler.handleSecureWebpage(new SecureWebpage(url));
		}
		else if("ftp".equals(protocol)) {
			return handler.handleFtpResource(new FtpResource(url));
		}
		else {
			throw new RuntimeException("unknown protokoll: " 
					+ protocol);
		}
	}
	
}
